home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 4
/
Aminet 4 - November 1994.iso
/
aminet
/
dev
/
obero
/
oberon_lib.lha
/
oberon-a
/
source1.lha
/
source
/
3rdParty
/
ReqTools.mod
< prev
next >
Wrap
Text File
|
1994-07-25
|
23KB
|
815 lines
(*
** Filename: reqtools.mod
** Release: 2.0
**
** Oberon-A interface for reqtools.library.
**
** (C) Copyright 1991/1992 Nico François
** All Rights Reserved
**
** Needs OC >=4.9ß to compile
*)
MODULE ReqTools;
(*
** $C- CaseChk $I- IndexChk $L+ LongAdr $N- NilChk
** $P- PortableCode $R- RangeChk $S- StackChk $T- TypeChk
** $V- OvflChk $Z- ZeroVars
*)
IMPORT
SYS := SYSTEM, E := Exec, D := Dos, I := Intuition, GFX := Graphics, UT := Utility;
TYPE
ReqToolsBasePtr* = CPOINTER TO ReqToolsBase;
ReqToolsBase* = RECORD (E.Library)
flags-: E.BSET;
pad0, pad1, pad2: SHORTINT;
segList-: D.BPTR;
(* The following library bases may be read and used by your program *)
intuitionBase-: I.IntuitionBasePtr;
gfxBase-: GFX.GfxBasePtr;
dosBase-: D.DosLibraryPtr;
(*
Next two library bases are only (and always) valid on Kickstart 2.0!
1.3 version of reqtools also initializes these when run on 2.0.
*)
gadToolsBase-: E.LibraryPtr;
utilityBase-: E.LibraryPtr;
END;
CONST
(* types of requesters, for AllocRequestA() *)
TypeFileReq* = 0;
TypeReqInfo* = 1;
TypeFontReq* = 2;
TypeScreenModeReq* = 3;
TYPE
ReqToolsReqPtr * = CPOINTER TO ReqToolsReq;
ReqToolsReq * = RECORD END; (* make them compatible *)
(***********************
* *
* File requester *
* *
***********************)
(* structure _MUST_ be allocated with AllocRequest() *)
TYPE
FileRequesterPtr* = CPOINTER TO FileRequester;
FileRequester* = RECORD (ReqToolsReq)
reqPos*: LONGINT;
leftOffset*: INTEGER;
topOffset*: INTEGER;
flags*: SET;
(* OBSOLETE IN V38! DON'T USE! *) hook*: UT.HookPtr;
dir-: E.STRPTR; (* READ ONLY! Change with ChangeReqAttrA()! *)
matchPat-: E.STRPTR; (* READ ONLY! Change with ChangeReqAttrA()! *)
defaultFont*: GFX.TextFontPtr;
waitPointer*: E.APTR;
(* V38 *)
lockWindow*: LONGINT;
shareIDCMP*: LONGINT;
intuiMsgFunc*: UT.HookPtr;
reserved1*: INTEGER;
reserved2*: INTEGER;
reserved3*: INTEGER;
reqHeight-: INTEGER; (* READ ONLY! Use RTFI_Height tag! *)
(* Private data follows! HANDS OFF :-) *)
END;
(* returned by FileRequestA() if multiselect is enabled,
free list with FreeFileList() *)
FileListPtr* = CPOINTER TO FileList;
FileList* = RECORD
next*: FileListPtr;
strLen*: LONGINT; (* -1 for directories *)
name*: E.STRPTR;
END;
(* RECORDure passed to RTFI_FilterFunc callback hook by
volume requester (see RTFI_VolumeRequest tag) *)
VolumeEntryPtr* = CPOINTER TO VolumeEntry;
VolumeEntry* = RECORD
type*: LONGINT; (* DLT_DEVICE or DLT_DIRECTORY *)
name*: E.STRPTR;
END;
(***********************
* *
* Font requester *
* *
***********************)
(* RECORDure _MUST_ be allocated with AllocRequest() *)
FontRequesterPtr* = CPOINTER TO FontRequester;
FontRequester* = RECORD (ReqToolsReq)
reqPos*: LONGINT;
leftOffset*: INTEGER;
topOffset*: INTEGER;
flags*: SET;
(* OBSOLETE IN V38! DON'T USE! *) hook*: UT.HookPtr;
attr-: GFX.TextAttr; (* READ ONLY! *)
defaultFont*: GFX.TextFontPtr;
waitPointer*: E.APTR;
(* V38 *)
lockWindow*: LONGINT;
shareIDCMP*: LONGINT;
intuiMsgFunc*: UT.HookPtr;
reserved1*: INTEGER;
reserved2*: INTEGER;
reserved3*: INTEGER;
reqHeight-: INTEGER; (* READ ONLY! Use RTFI_Height tag! *)
(* Private data follows! HANDS OFF :-) *)
END;
(*************************
* *
* ScreenMode requester *
* *
*************************)
(* RECORDure _MUST_ be allocated with rtAllocRequest() *)
ScreenModeRequesterPtr = CPOINTER TO ScreenModeRequester;
ScreenModeRequester = RECORD (ReqToolsReq)
reqPos*: LONGINT;
leftOffset*: INTEGER;
topOffset*: INTEGER;
flags*: SET;
private1*: LONGINT;
displayID-: LONGINT; (* READ ONLY! *)
displayWidth-: INTEGER; (* READ ONLY! *)
displayHeight-: INTEGER; (* READ ONLY! *)
defaultFont*: GFX.TextFontPtr;
waitPointer*: E.APTR;
lockWindow*: LONGINT;
shareIDCMP*: LONGINT;
intuiMsgFunc*: UT.HookPtr;
reserved1*: INTEGER;
reserved2*: INTEGER;
reserved3*: INTEGER;
reqHeight-: INTEGER; (* READ ONLY! Use RTFI_Height tag! *)
displayDepth*: INTEGER;
overscanType*: INTEGER;
autoScroll*: LONGINT;
(* Private data follows! HANDS OFF :-) *)
END;
(***********************
* *
* Requester Info *
* *
***********************)
(* for EZRequestA(), GetLongA(), GetStringA() and PaletteRequestA(),
_MUST_ be allocated with AllocRequest() *)
ReqInfoPtr* = CPOINTER TO ReqInfo;
ReqInfo* = RECORD (ReqToolsReq)
reqPos*: LONGINT;
leftOffset*: INTEGER;
topOffset*: INTEGER;
width*: LONGINT; (* not for EZRequestA() *)
reqTitle*: E.STRPTR; (* currently only for EZRequestA() *)
flags*: SET;
defaultFont*: GFX.TextFontPtr; (* currently only for PaletteRequestA() *)
waitPointer*: E.APTR;
(* V38 *)
lockWindow: LONGINT;
shareIDCMP: LONGINT;
intuiMsgFunc: UT.HookPtr;
(* RECORDure may be extended in future *)
END;
(***********************
* *
* Handler Info *
* *
***********************)
(* for ReqHandlerA(), will be allocated for you when you use
the ReqHandler tag, never try to allocate this yourself! *)
HandlerInfoPtr* = CPOINTER TO HandlerInfo;
HandlerInfo* = RECORD
private1: LONGINT;
waitMask*: SET;
doNotWait*: E.LONGBOOL; (* ? *)
(* Private data follows, HANDS OFF :-) *)
END;
(* possible return codes from ReqHandlerA() *)
CONST
CallHandler* = 080000000H;
(*************************************
* *
* TAGS *
* *
*************************************)
TagBase* = UT.tagUser;
(*** tags understood by most requester functions ***)
(* optional pointer to window *)
Window* = TagBase+1;
(* idcmp flags requester should abort on (useful for IDCMP_DISKINSERTED) *)
IDCMPFlags* = TagBase+2;
(* position of requester window (see below) - default REQPOS_POINTER *)
ReqPos* = TagBase+3;
(* signal mask to wait for abort signal *)
LeftOffset* = TagBase+4;
(* topedge offset of requester relative to position specified by ReqPos *)
TopOffset* = TagBase+5;
(* name of public screen to put requester on (Kickstart 2.0 only!) *)
PubScrName* = TagBase+6;
(* address of screen to put requester on *)
Screen* = TagBase+7;
(* tagdata must hold the address of (!) an APTR variable *)
DoReqHandler* = TagBase+8;
(* font to use when screen font is rejected, _MUST_ be fixed-width font!
(TextFontPtr , not TextAttrPtr ! - default GfxBase->DefaultFont *)
DefaultFont* = TagBase+9;
(* boolean to set the standard wait pointer in window - default FALSE *)
WaitPointer* = TagBase+10;
(* (V38) char preceding keyboard shortcut characters (will be underlined) *)
Underscore* = TagBase+11;
(* (V38) share IDCMP port with window - default FALSE *)
ShareIDCMP* = TagBase+12;
(* (V38) lock window and set standard wait pointer - default FALSE *)
LockWindowTag* = TagBase+13;
(* (V38) boolean to make requester's screen pop to front - default TRUE *)
ScreenToFront* = TagBase+14;
(* (V38) Requester should use this font - default: screen font *)
TextAttr* = TagBase+15;
(* (V38) call this hook for every IDCMP message not for requester *)
IntuiMsgFunc* = TagBase+16;
(* (V38) Locale ReqTools should use for text *)
Locale* = TagBase+17;
(*** tags specific to EZRequestA ***)
(* title of requester window - default "Request" or "Information" *)
ezReqTitle* = TagBase+20;
(* TagBase+21 reserved *)
(* various flags (see below) *)
ezFlags* = TagBase+22;
(* default response (activated by pressing RETURN) - default TRUE *)
ezDefaultResponse* = TagBase+23;
(*** tags specific to GetLongA ***)
(* minimum allowed value - default MININT *)
glMin* = TagBase+30;
(* maximum allowed value - default MAXINT *)
glMax* = TagBase+31;
(* suggested width of requester window (in pixels) *)
glWidth* = TagBase+32;
(* boolean to show the default value - default TRUE *)
glShowDefault* = TagBase+33;
(* (V38) string with possible responses - default " _Ok |_Cancel" *)
glGadFmt * = TagBase+34;
(* (V38) optional arguments for RTGL_GadFmt *)
glGadFmtArgs* = TagBase+35;
(* (V38) invisible typing - default FALSE *)
glInvisible* = TagBase+36;
(* (V38) window backfill - default TRUE *)
glBackFill* = TagBase+37;
(* (V38) optional text above gadget *)
glTextFmt* = TagBase+38;
(* (V38) optional arguments for RTGS_TextFmt *)
glTextFmtArgs* = TagBase+39;
(* (V38) various flags (see below) *)
glFlags* = ezFlags;
(*** tags specfic to GetStringA ***)
(* suggested width of requester window (in pixels) *)
gsWidth* = glWidth;
(* allow empty string to be accepted - default FALSE *)
gsAllowEmpty* = TagBase+80;
(* (V38) string with possible responses - default " _Ok |_Cancel" *)
gsGadFmt * = glGadFmt;
(* (V38) optional arguments for RTGS_GadFmt *)
gsGadFmtArgs* = glGadFmtArgs;
(* (V38) invisible typing - default FALSE *)
gsInvisible* = glInvisible;
(* (V38) window backfill - default TRUE *)
gsBackFill* = glBackFill;
(* (V38) optional text above gadget *)
gsTextFmt* = glTextFmt;
(* (V38) optional arguments for RTGS_TextFmt *)
gsTextFmtArgs* = glTextFmtArgs;
(* (V38) various flags (see below) *)
gsFlags* = ezFlags;
(*** tags specific to FileRequestA ***)
(* various flags (see below) *)
fiFlags* = TagBase+40;
(* suggested height of file requester *)
fiHeight* = TagBase+41;
(* replacement text for 'Ok' gadget (max 6 chars) *)
fiOkText* = TagBase+42;
(* (V38) bring up volume requester, tag data holds flags (see below) *)
fiVolumeRequest* = TagBase+43;
(* (V38) call this hook for every file in the directory *)
fiFilterFunc* = TagBase+44;
(* (V38) allow empty file to be accepted - default FALSE *)
fiAllowEmpty* = TagBase+45;
(*** tags specific to FontRequestA ***)
(* various flags (see below) *)
foflags* = fiFlags;
(* suggested height of font requester *)
foHeight* = fiHeight;
(* replacement text for 'Ok' gadget (max 6 chars) *)
foOkText* = fiOkText;
(* suggested height of font sample display - default 24 *)
foSampleHeight* = TagBase+60;
(* minimum height of font displayed *)
foMinHeight* = TagBase+61;
(* maximum height of font displayed *)
foMaxHeight* = TagBase+62;
(* [TagBase+63 to TagBase+66 used below] *)
(* (V38) call this hook for every font *)
foFilterFunc* = fiFilterFunc;
(*** (V38) tags for rtScreenModeRequestA ***)
(* various flags (see below) *)
scFlags* = fiFlags;
(* suggested height of screenmode requester *)
scHeight* = fiHeight;
(* replacement text for 'Ok' gadget (max 6 chars) *)
scOkText* = fiOkText;
(* property flags (see also RTSC_PropertyMask) *)
scPropertyFlags* = TagBase+90;
(* property mask - default all bits in RTSC_PropertyFlags considered *)
scPropertyMask* = TagBase+91;
(* minimum display width allowed *)
scMinWidth* = TagBase+92;
(* maximum display width allowed *)
scMaxWidth* = TagBase+93;
(* minimum display height allowed *)
scMinHeight* = TagBase+94;
(* maximum display height allowed *)
scMaxHeight* = TagBase+95;
(* minimum display depth allowed *)
scMinDepth* = TagBase+96;
(* maximum display depth allowed *)
scMaxDepth* = TagBase+97;
(* call this hook for every display mode id *)
scFilterFunc* = fiFilterFunc;
(*** tags for ChangeReqAttrA ***)
(* file requester - set directory *)
fiDir* = TagBase+50;
(* file requester - set wildcard pattern *)
fiMatchPat* = TagBase+51;
(* file requester - add a file or directory to the buffer *)
fiAddEntry* = TagBase+52;
(* file requester - remove a file or directory from the buffer *)
fiRemoveEntry* = TagBase+53;
(* font requester - set font name of selected font *)
foFontName* = TagBase+63;
(* font requester - set font size *)
foFontHeight* = TagBase+64;
(* font requester - set font style *)
foFontStyle* = TagBase+65;
(* font requester - set font flags *)
foFontFlags* = TagBase+66;
(*** tags for ScreenModeRequestA ***)
(* (V38) screenmode requester - get display attributes from screen *)
scModeFromScreen* = TagBase+80;
(* (V38) screenmode requester - set display mode id (32-bit extended) *)
scDisplayID* = TagBase+81;
(* (V38) screenmode requester - set display width *)
scDisplayWidth* = TagBase+82;
(* (V38) screenmode requester - set display height *)
scDisplayHeight* = TagBase+83;
(* (V38) screenmode requester - set display depth *)
scDisplayDepth* = TagBase+84;
(* (V38) screenmode requester - set overscan type, 0 for regular size *)
scOverscanType* = TagBase+85;
(* (V38) screenmode requester - set autoscroll *)
scAutoScroll* = TagBase+86;
(*** tags for PaletteRequestA ***)
(* initially selected color - default 1 *)
paColor* = TagBase+70;
(*** tags for ReqHandlerA ***)
(* end requester by software control, set tagdata to REQ_CANCEL, REQ_OK or
in case of EZRequest to the return value *)
rhEndRequest* = TagBase+60;
(*** tags for AllocRequestA ***)
(* no tags defined yet *)
(************
* ReqPos *
************)
ReqPosPointer* = 0;
ReqPosCenterWin* = 1;
ReqPosCenterScr* = 2;
ReqPosTopLeftWin* = 3;
ReqPosTopLeftScr* = 4;
(******************
* RTRH_EndRequest *
******************)
ReqCancel* = 0;
ReqOK* = 1;
(***************************************
* flags for RTFI_Flags and RTFO_Flags *
* or filereq->Flags and fontreq->Flags *
***************************************)
fReqNoBuffer* = 2;
(*****************************************
* flags for RTFI_Flags or filereq->Flags *
*****************************************)
fReqMultiSelect* = 0;
fReqSave* = 1;
fReqNoFiles* = 3;
fReqPatGad* = 4;
fReqSelectDirs* = 12;
(*****************************************
* flags for RTFO_Flags or fontreq->Flags *
*****************************************)
fReqFixedWidth* = 5;
fReqColorFonts* = 6;
fReqChangePalette* = 7;
fReqLeavePalette* = 8;
fReqScale* = 9;
fReqStyle* = 10;
(*****************************************************
* (V38) flags for RTSC_Flags or screenmodereq->Flags *
*****************************************************)
scReqSizeGads* = 13;
scReqDepthGad* = 14;
scReqNonStdModes* = 15;
scReqGuiModes* = 16;
scReqAutoscrollGad* = 18;
scReqOverscanGad* = 19;
(*****************************************
* flags for RTEZ_Flags or reqinfo->Flags *
*****************************************)
ezReqNoReturnKey* = 0;
ezReqLamigaQual* = 1;
ezReqCenterText* = 2;
(***********************************************
* (V38) flags for RTGL_Flags or reqinfo->Flags *
***********************************************)
glReqCenterText* = ezReqCenterText;
glReqHighlightText* = 3;
(***********************************************
* (V38) flags for RTGS_Flags or reqinfo->Flags *
***********************************************)
gsReqCenterText* = ezReqCenterText;
gsReqHighlightText* = glReqHighlightText;
(*****************************************
* (V38) flags for RTFI_VolumeRequest tag *
*****************************************)
vReqNoAssigns* = 0;
vReqNoDisks* = 1;
vReqAllDisks* = 2;
(*
Following things are obsolete in ReqTools V38.
Don't use them in new code!
*)
fReqDoWildFunc* = 11;
ReqHookWildFile* = 0;
ReqHookWildFont* = 1;
CONST
name* = "reqtools.library";
libraryMinimum* = 38;
VAR
base*: ReqToolsBasePtr;
LIBCALL (base: ReqToolsBasePtr) AllocRequestA*
( type[0]: LONGINT;
tagList[8]: ARRAY OF UT.TagItem )
: ReqToolsReqPtr;
-30;
LIBCALL (base: ReqToolsBasePtr) AllocRequest*
( type[0]: LONGINT;
tag1[8]..: UT.Tag )
: ReqToolsReqPtr;
-30;
LIBCALL (base: ReqToolsBasePtr) FreeRequest*
( req[9]: ReqToolsReqPtr );
-36;
LIBCALL (base: ReqToolsBasePtr) FreeReqBuffer*
( req[9]: ReqToolsReqPtr );
-42;
LIBCALL (base: ReqToolsBasePtr) ChangeReqAttrA*
( req[9]: ReqToolsReqPtr;
tagList[8]: ARRAY OF UT.TagItem );
-48;
LIBCALL (base: ReqToolsBasePtr) ChangeReqAttr*
( req[9]: ReqToolsReqPtr;
tag1[8]..: UT.Tag );
-48;
LIBCALL (base: ReqToolsBasePtr) FileRequestA*
( fileReq[9]: FileRequesterPtr;
VAR fileName[10]: ARRAY OF CHAR;
title[11]: ARRAY OF CHAR;
tagList[8]: ARRAY OF UT.TagItem )
: BOOLEAN;
-54;
LIBCALL (base: ReqToolsBasePtr) FileRequest*
( fileReq[9]: FileRequesterPtr;
VAR fileName[10]: ARRAY OF CHAR;
title[11]: ARRAY OF CHAR;
tag1[8]..: UT.Tag )
: BOOLEAN;
-54;
LIBCALL (base: ReqToolsBasePtr) FreeFileList*
( fileList[8]: FileListPtr );
-60;
LIBCALL (base: ReqToolsBasePtr) EZRequestA*
( bodyFmt[9], gadFmt[10]: ARRAY OF CHAR;
reqInfo[11]: ReqInfoPtr;
argArray[12]: E.APTR;
tagList[8]: ARRAY OF UT.TagItem )
: LONGINT;
-66;
LIBCALL (base: ReqToolsBasePtr) EZRequestTags*
( bodyFmt[9], gadFmt[10]: ARRAY OF CHAR;
reqInfo[11]: ReqInfoPtr;
argArray[12]: E.APTR;
tag1[8]..: UT.Tag )
: LONGINT;
-66;
LIBCALL (base: ReqToolsBasePtr) EZRequest*
( bodyFmt[9], gadFmt[10]: ARRAY OF CHAR;
reqInfo[11]: ReqInfoPtr;
tagList[8]: ARRAY OF UT.TagItem;
argArray[12]..: E.APTR )
: LONGINT;
-66;
(* Without result.... *)
LIBCALL (base: ReqToolsBasePtr) VEZRequestA*
( bodyFmt[9], gadFmt[10]: ARRAY OF CHAR;
reqInfo[11]: ReqInfoPtr;
argArray[12]: E.APTR;
tagList[8]: ARRAY OF UT.TagItem );
-66;
LIBCALL (base: ReqToolsBasePtr) VEZRequestTags*
( bodyFmt[9], gadFmt[10]: ARRAY OF CHAR;
reqInfo[11]: ReqInfoPtr;
argArray[12]: E.APTR;
tag1[8]..: UT.Tag );
-66;
LIBCALL (base: ReqToolsBasePtr) VEZRequest*
( bodyFmt[9], gadFmt[10]: ARRAY OF CHAR;
reqInfo[11]: ReqInfoPtr;
tagList[8]: ARRAY OF UT.TagItem;
argArray[12]..: E.APTR );
-66;
LIBCALL (base: ReqToolsBasePtr) GetStringA*
( VAR buffer[9]: ARRAY OF CHAR;
maxChars[0]: LONGINT;
title[10]: ARRAY OF CHAR;
reqInfo[11]: ReqInfoPtr;
tagList[8]: ARRAY OF UT.TagItem )
: BOOLEAN;
-72;
LIBCALL (base: ReqToolsBasePtr) GetString*
( VAR buffer[9]: ARRAY OF CHAR;
maxChars[0]: LONGINT;
title[10]: ARRAY OF CHAR;
reqInfo[11]: ReqInfoPtr;
tag1[8]..: UT.Tag )
: BOOLEAN;
-72;
LIBCALL (base: ReqToolsBasePtr) GetLongA*
( VAR long[9]: LONGINT; title[10]: ARRAY OF CHAR;
reqInfo[11]: ReqInfoPtr;
tagList[8]: ARRAY OF UT.TagItem )
: BOOLEAN;
-78;
LIBCALL (base: ReqToolsBasePtr) GetLong*
( VAR long[9]: LONGINT; title[10]: ARRAY OF CHAR;
reqInfo[11]: ReqInfoPtr;
tag1[8]..: UT.Tag )
: BOOLEAN;
-78;
LIBCALL (base: ReqToolsBasePtr) FontRequestA*
( fontReq[9]: FontRequesterPtr;
title[11]: ARRAY OF CHAR;
tagList[8]: ARRAY OF UT.TagItem )
: BOOLEAN;
-96;
LIBCALL (base: ReqToolsBasePtr) FontRequest*
( fontReq[9]: FontRequesterPtr;
title[11]: ARRAY OF CHAR;
tag1[8]..: UT.Tag )
: BOOLEAN;
-96;
LIBCALL (base: ReqToolsBasePtr) PaletteRequestA*
( title[10]: ARRAY OF CHAR;
reqInfo[11]: ReqInfoPtr;
tagList[8]: ARRAY OF UT.TagItem )
: LONGINT;
-102;
LIBCALL (base: ReqToolsBasePtr) PaletteRequest*
( title[10]: ARRAY OF CHAR;
reqInfo[11]: ReqInfoPtr;
tag1[8]..: UT.Tag )
: LONGINT;
-102;
LIBCALL (base: ReqToolsBasePtr) ReqHandlerA*
( hinfo[9]: HandlerInfoPtr;
sigs[0]: SET;
tagList[8]: ARRAY OF UT.TagItem )
: LONGINT;
-108;
LIBCALL (base: ReqToolsBasePtr) ReqHandler*
( hinfo[9]: HandlerInfoPtr;
sigs[0]: SET;
tag1[8]..: UT.Tag)
: LONGINT;
-108;
LIBCALL (base: ReqToolsBasePtr) SetWaitPointer*
( window[8]: I.WindowPtr );
-114;
LIBCALL (base: ReqToolsBasePtr) GetVScreenSize*
( screen[8]: I.ScreenPtr;
VAR width[9],height[10]: LONGINT );
-120;
LIBCALL (base: ReqToolsBasePtr) SetReqPosition*
( reqPos[0]: LONGINT;
VAR nw[8]: I.NewWindow;
screen[9]: I.ScreenPtr;
window[10]: I.WindowPtr );
-126;
LIBCALL (base: ReqToolsBasePtr) Spread*
( VAR posArray[8]: ARRAY OF LONGINT;
sizeArray[9]: ARRAY OF LONGINT;
totalSize[0], min[1], max[2], num[3]: LONGINT );
-132;
LIBCALL (base: ReqToolsBasePtr) ScreenToFrontSafely*
( screen[8]: I.ScreenPtr );
-138;
(*--- functions in V38 or higher (distributed as Release 2.0) ---*)
LIBCALL (base: ReqToolsBasePtr) ScreenModeRequestA*
( screenmodeReq[9]: ScreenModeRequesterPtr;
title[11]: ARRAY OF CHAR;
tagList[8]: ARRAY OF UT.TagItem )
: BOOLEAN;
-144;
LIBCALL (base: ReqToolsBasePtr) ScreenModeRequest*
( screenmodeReq[9]: ScreenModeRequesterPtr;
title[11]: ARRAY OF CHAR;
tag1[8]..: UT.Tag )
: BOOLEAN;
-144;
LIBCALL (base: ReqToolsBasePtr) CloseWindowSafely*
( window[8]: I.WindowPtr );
-150;
LIBCALL (base: ReqToolsBasePtr) LockWindow*
( window[8]: I.WindowPtr )
: LONGINT;
-156;
LIBCALL (base: ReqToolsBasePtr) UnlockWindow*
( window[8]: I.WindowPtr;
winLock[9]: LONGINT );
-162;
PROCEDURE Assert* (cond: BOOLEAN; msg: ARRAY OF CHAR);
BEGIN
IF ~cond THEN
base.VEZRequestTags
( msg, "Abort", NIL, NIL,
ezReqTitle, SYS.ADR ("Assert"),
UT.tagDone );
HALT (20)
END;
END Assert;
(*-- Library Base variable --------------------------------------------*)
(* $L- Address globals through A4 *)
(*-----------------------------------*)
PROCEDURE* CloseLib;
BEGIN
IF base # NIL THEN E.base.CloseLibrary (base) END;
END CloseLib;
(*-----------------------------------*)
PROCEDURE OpenLib * (mustOpen : BOOLEAN);
BEGIN
IF base = NIL THEN
base :=
SYS.VAL
( ReqToolsBasePtr,
E.base.OpenLibrary (name, libraryMinimum));
IF base # NIL THEN SYS.SETCLEANUP (CloseLib)
ELSIF mustOpen THEN HALT (100)
END
END
END OpenLib;
BEGIN
base := NIL
END ReqTools.